<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class RepEmpleados extends CI_Controller{
    
    public function __construct() {
        parent::__construct();
        global $admin, $data;
        #Cargamos datos del administrador
        $admin = $this->session->userdata('admin');
        $this->verificacion_acceso($admin);
        $admin['place'] = 'repEmpleados';
        $this->output->enable_profiler(FALSE);
    }
   
    public function index(){
        global $admin, $data;
        
        $listEmp = $this->reportes_model->getListIDEmp();
        
        $data['datosEmp'] = $this->getDatosEmp($listEmp);
        
        $this->load->view('template/header', $admin);
        $this->load->view('template/open_content_container');
        $this->load->view('menu/menu_admin', $data);
        $this->load->view('genReporte/empleados');
        $this->load->view('template/close_content_container');
        $this->load->view('template/footer');
    }
    /**
     * Funcion que se encarga de verificar que 
     * se logueara antes
     */
    public function verificacion_acceso($admin){
        if ($admin['ta_tipo_administrador_id'] != 1) {
            redirect('home');
        }
    }
    /**
     * Calcula el promedio de todos los empleados
     * @param type $listEmp
     */
    public function getDatosEmp($listEmp){
        $datosEmp = array();
        foreach ($listEmp as $empl){
            $datosEmp += array($empl->e_empleado_id => array(
                'promedio' => $this->getPromedio($empl->e_empleado_id),
                'e_nombre' => $empl->e_nombre,
                'em_nombre' => $empl->em_nombre,
                'd_nombre' => $empl->d_nombre
                )
            );
        }
        return $datosEmp;        
    }
    
    public function getPromedio($e_empleado_id){
        $list = $this->reportes_model->getListTestDone($e_empleado_id);
        $sum = 0;
        $n = count($list);
        if($n == 0){
            return 0;
        }else{
            foreach ($list as $idmat){
                $sum += $this->reportes_model->getCalifiacion($e_empleado_id,$idmat->m_material_id)->calificacion;
            }
            return $sum/$n;
        }
    }
    /**
     * Para implementar AJAX se necesita funciones extras para almacenar los datos 
     * y despues redireccionar a la funcion que carga la vista
     * @global array $data
     */
    public function saveDataHistorial(){
        global $data;
        $data['ds_e_empleado_id'] = $this->input->post('e_empleado_id'); 
    }
    
    public function historial(){
        global $admin,$data;
        
        $e_empleado_id = $data['ds_e_empleado_id'];
        
        $this->load->view('template/header', $admin);
        $this->load->view('template/open_content_container');
        $this->load->view('menu/menu_admin', $data);
        $this->load->view('genReporte/historial');
        $this->load->view('template/close_content_container');
        $this->load->view('template/footer');
    }
    
}
